Art of Illusion での、2足キャラクターの歩行サイクルのアニメーション

by Julian MacDonald (勝手日本語訳: ゆんず)

初版執筆: 2002/8 対象: ver. 1.1

キャラクターを歩かせるのはキャラクターアニメーションのキーストーンで、その雰囲気のように単純なことではありません。このチュートリアルでは、Art of Illusion での歩行サイクルの作り方を解説します。ここで紹介する方法がすべてではありませんが、うまく動きますよ。

モデル

このチュートリアルでは、簡単な人型フィギュア(walk_model.aoi)を使います。これは直方体を頭部として近似平滑で三角メッシュに変換して、何度も押し出しして胴体・腕・足などを作ったものです。


モデルの骨格はとても重要です。モデルのポーズを簡単に作れるよう、骨格は充分に柔軟でなければなりません。このモデルで設定した骨格を右の図に示します。歩行サイクルでは腰・ひざ・足首・つま先・肩・ひじの回転が必要になります。

右の図の遠近法視点で、足首から下の設定が分かります。それぞれ2つの骨があり、「つま先」はほかの部分とは別個に曲がります。これは後で重要になります。

この例ではまた、骨の回転も四肢の前方平面のみに設定しました。つまり足は外側には回転しないということです。もちろんこれは実生活そのままではありませんが、今回の単純な作例では、これでキャラクターのポーズ作りが簡単になります。骨の回転は、メッシュ編集機能の 骨 → 骨を編集... メニューコマンドで調整します。詳しくはメッシュのチュートリアルをご覧ください。



基本的な歩行動作

必要なさまざまなポーズの作成を始める前に、まず歩行中の体の基本的な動作を考える必要があります。直線上の簡単な歩行では、2つの動作(前方の動作と上下の動作)が考えられます。前方の動作は簡単で、一定の速度での動作です。このとき 距離=速度×時間 となります。上下の動作は「ひょいひょい」といった動きです。目線を真っすぐ前に向けて歩いてみましょう。視界は上下に動くでしょう。 ポーズや歩き方によるので、この動作をきれいに表現できる数式はなく、姿勢や歩き方で異なってきます。

まずはこの歩行サイクルの設定で、上記の2つの動作を定義しましょう。このために、それぞれの動作方向で剛体 Position(位置)トラックを使います。実際はこの2つを1つのトラックに組み合わせることができますが、分けたほうが簡単です。各トラックは「関連」モードトラックです。つまり定義される動作は現在のモデルの Positon に追加されます。これでモデルの移動が簡単になり、どこにでも置いて歩かせられます。さらに、キャラクターが歩く「床」も必要です。面が平らな直方体がいいでしょう。

では アニメーション → スコアを表示 をクリックして、スコアを表示しましょう。オブジェクトリストからキャラクターのメッシュを選択します。スコア上でオブジェクトの下のトラックリストを見ると、このメッシュにデフォルトで "Position" と "Rotation" の2つのトラックが割り当てられているはずですが、"Rotation" トラックはこのチュートリアルに必要ないので削除しましょう。デフォルトの Position トラックはキャラクターの初期状態の位置を設定するのに使います。「床」の端に両足が乗るようモデルを置き、アニメーション → 位置を設定 をクリックして、この位置をキーフレームします。

ここから歩行動作についてです。アニメーション → トラックを追加 を2回選択して、新規の Position トラックを2つ追加します。新規の2つのトラックは初期状態の Positon トラックの上に置きます。これは、それより後に実行される、という意味です。
新規のトラックのうちの1つのをダブルクリックしてオプションダイアログを表示、トラック名 を "Up Position" のように付けてください。平滑方法 は「直線」に、適用モード は「関連」にしましょう。

また、このトラックは Y 軸での動作のみを扱うので、影響Y のみにします。

もう1つのトラックでもこの設定を繰り返します。名前は "Forward Position" と付けて、影響 を適切に設定します。このチュートリアルでは、キャラクターは X 軸方向に歩きます。

体全体の動作をキーフレームします。前方の動作(例では X 方向)から始めましょう。まず X 移動量=時間×速度となります。キャラクターの速度は歩き方のタイプ(カジュアル、ぶらつく、マーチ、走る など)と足の長さによります。リラックスした歩き方として、速度は秒速で足の長さの1.5倍はいかがでしょう。私のモデルの足の長さは0.8単位なので、速度は1.2単位/秒となります。またこのチュートリアルでは、キャラクターは0.8秒ごとに1歩とします。Richard Williams による素晴らしい著書 "The Animator's Survival Kit"(ご一読を強くお勧めします)によると、これはキビキビ歩きとブラブラ歩きの間です。最初の1歩の最後でのモデルの移動距離は 1.2×0.8=0.96 となります。タイムメーカーを 0.8 に動かし、スコアから Forward Position トラックを選び、アニメーション → 選択トラックに設定 を選択します。これで Forward Position トラックの時刻 0.8 秒にキーフレームが追加されます。このキーフレレームをダブルクリックすると、以下の図のダイアログが表示されます。

X には 0.96 を入力します。このトラックは X 方向のみに影響するので、Y と Z の値は気にしないでください。

一番下の平滑度の設定は気にしなくて大丈夫です。直線平滑方法を設定しているので、この数値は影響しません。このチュートリアルを済ませた後、試しに補間平滑や近似平滑に替えてみると、平滑度の数値の影響が分かりますよ。

今アニメーションをプレビューすると、モデルが床に沿ってスライドしていく状態です。上下動もさせましょう。歩行サイクルの1歩は、以下の図のポーズのようになります。事実これらは次のセクションで作成するポーズ一式です。表示されている位置は 0秒、0.2秒、0.4秒、0.6秒、0.8秒で設定します。今お見せする理由は、これでモデルの体全体の上下動を理解できるからです。



上下動の量は歩き方によりますが、このポーズ一式では、これから作るべき高さの相対的な変動のように思えます。スコアリストから Up Position トラックを選択しましょう。タイムメーカーを0に動かし、アニメーション → 選択トラックに設定 でトラックにキーフレームを追加します。キーフレームをダブルクリックして、Y の値を0にします。ほかの Position を定義するには、 をクリックしてグラフ化したキーフームビューに切り替えるとより簡単です。次はタイムメーカーを 0.2 に動かして、先のようにキーフレームを追加します。ダブルクリックして Y の値を -0.05 あたりに変えます。後でいろいろいじって正確な値を探しましょう。

この工程を 0.4秒、0.6秒、0.8秒でも繰り返し、Y 値に上のポーズでの高さの変化を反映させます。グラフが下の図のようになったら作業を終えましょう。
Forward Position トラックは以下の図のようになります。



ポーズ作業に移る前の最後の作業です。胴/頭の Position が最も高いとき(0.6秒など)、足がちょうど床に着くようにします。その時刻に移動して、足が床に着くようモデルの高さを調整します。そして最初の Position トラックを選んで、アニメーション → 選択トラックに設定 を選択します。しかしアニメーション開始時にこの最初の Position を適用したいので、このトラックの時刻0で作った、もとのキーフレームは削除します。代わりに、新規のキーフレームを時刻0にドラッグします。アニメーションを通して実行したとき、モデルの足が地面にめり込む形で始まるはずです。さらに沈んで、0.6秒での正しい位置に持ち上がって、再び地面にめり込みます。(訳注: ver. 2.9.1 で最後のアニメーションプレビューのようにするには、グラフ表示のスコア上で全キーフレームを選択(矩形選択でできます)→ 最大高さが0になるよう全キーフレームを一気に下に移動、でできるようです)

ポーズ

胴体の基本的な動作ができ上がったら、歩行のさまざまなポーズを作る作業をしましょう。アニメーション → トラックを追加 → ポーズを選択して、キャラクターにポーズトラックを追加します。点を追加/削除できない旨の通常の警告が出ますが、そのまま Yes をクリックしてください。
最初のポーズは、上の ポーズ画像接地1 として出ています。これは両足が実質的に真っすぐに伸びています。第1段階として右足を支点にしましょう。タイムメーカーを0に動かし、オブジェクトリストでキャラクターのオブジェクトをダブルクリックすると、ポーズ編集機能が表示されます。このダイアログのさまざまな部分について、詳しくはマニュアルをご覧ください。左側のリストの Default Pose(この段階ではリストにある唯一のもの)をクリック、複製... をクリックすると、Default Pose のコピーが作られます。このコピーに名前を付けて(接地1)ダブルクリック(または選択して 編集... をクリック)すると、メッシュ編集機能が表示されます。
ここですることは、骨格を使って、ポーズ画像 の左側のポーズの位置に足と腕を動かすことです。一番いい方法は、基礎を頻繁に再定義することです。再定義後すぐに骨格の階層構造の中で骨を動かします。制御しやすくなりますよ。この方法は前向き制御(Foward Kinematics, FK)といいます。例えば、腰の片側を基礎に設定し、ひざの関節を指定の位置に回転させます。今度はひざを基礎に再設定して、足首などを動かします。または、骨の回転の制限の設定が出来上がっている場合、足首から下を掴み、部分的に逆向き制御(Inverse Kinematic, IK)計算を利用します。ただしこのポーズでのつま先の曲げは左足のほうです。これはとても重要です。また、モデルが床に触れていることを確認してください。画面 → 表示 → シーン全体を表示 を選択すると、メッシュ編集機能で床の位置が分かります。

ここができたら OK をクリックして、ポーズダイアログのウインドウに戻ります。このポーズは、左側のジェスチャリストに加わっているはずです。これを選択して 追加>> をクリックすると、ポーズリストに追加されます。OK をクリックしましょう。このポーズを設定して、アニメーション → 選択トラックに設定 を選びます。これで、このトラックの時刻0にキーフレームが追加されます。

歩行サイクルで最も重要かつ難しいことの1つは、キャラクターの動作で足が床で滑らないようにすることです。この事態を避けるヒントの1つは、マーカーとして別のオブジェクトを置くことです。単純な中実三角形を使いましょう。多角形ツールでこれを1個作り、右の図のように右足のかかとに並べます(よく見えるよう、わざと強調しました)。これが足の支点となるので、前方の位置が変わらないはずです。


次のポーズです。タイムメーカーを 0.2 に動かし、再びオブジェクトリストでモデルをダブルクリックします。先のように、Default Pose の複製を作り、名前を 下1 と付け、メッシュ編集機能を立ち上げます。ここで作るポーズは既出の ポーズ画像 にあります。骨格の調整で右足が前後にズレないよう、かかとがマーカーと並ぶようにします。このマーカーは ポーズ画像 に出ています(このチュートリアルでよく見えるよう、わざと赤くして強調しています)。前に進む速度をだいたい正しく設定していれば、この骨格の位置合わせは適切となり、この操作に問題は出ないでしょう。モデルが前に進みすぎたり、前に進む量が足りなかったりでうまく行かないときは、ポーズダイアログを閉じてください。そして Forward Position トラックで速度を増減させ、ポーズを作り直します。また Up Position の上下動の大きさも問題になり得ます。このときもポーズダイアログを閉じて、必要に応じて上下動を調整してください。完了したら OK をクリックしてポーズダイアログに戻ります。ポーズのリストには先のポーズ(接地1)がありますが、この段階では不要なので、選択して << 消去 をクリックします。そしてジェスチャのリストで新規のジェスチャ(下1)を選択して、追加>> をクリックします。

この工程を時刻 0.8 までのポーズで行います。時刻 0.8 は最初の1歩の終わりで、次の1歩の始まりとなります。次の1歩はもちろん左足を支点にするので、時刻 0.8 でマーカーを左足のかかとに並べます。また次の1歩のため、体全体の動作のトラックを拡張します。Forward Motion トラックは簡単です。キーフレームを 1.6 秒にドラックしてダブルクリック、X の値を先の2倍の変えます(この例では 1.92)。Up Position トラックでは「上下動」のパターンをコピーします。これをするには、アニメーション → まとめて編集 → コピー で以下のダイアログを表示させます。

左の図のように値を入力してください。これで2歩目の動作をコピーできます。


次に移り、最後のポーズを作成します。最初の1歩とは手足が逆である以外、基本的にはじめのステップと同じです。すべてのポーズを定義したら、ポーズのダイアログには以下の図のように、Default Pose を除いて8つのポーズがあるはずです。



微調整

歩行サイクルの原則的なところは完了しました。しかし実際問題としてはまだの状態です。作成したすべてのポーズはきれいに床に着いていますが、補完で作った中間の位置では床の 中に めり込んでいます。下の例をご覧ください。最初と3番目の画像は、ポーズで設定した時間を「前」視点で見たものです。中央の画像は、0.1 秒で補完されたフレームです。ご覧のように、両足は地面にかなりめり込んでいます。



この問題の対処法は2つあります。まずは追加の Up Position キーフレームを設定済みのキーフレームの間に入れること、もうひとつは追加のポーズキーフレームを入れることです。

上の問題を解決するには例えば、タイムメーカーを 0.1 に動かし、Up Pisition トラックのみを選択して アニメーション → 選択トラックに設定 をクリックします。これで時刻 0.1 秒に新規のキーフレームが追加されます。画面からモデルが消えますが、気にしないでください。グラフ表示に切り替えて、新規のキーフレームを0近くに下げます。これでモデルが再び現れます。モデルの足が床にきれいに着くまで、慎重にキーフレームを調整します。アニメーションを確かめ、足が地面にめり込むほかの点でもこの修正を行います。

右の図は、地面への足のめり込みをなくす修正をした Up Position トラックです。


中間位置の調整ではなく、先に書いた、ポーズ同士の中間に新規のポーズを作る方法でも OK ですよ。


歩行サイクルのループと引き伸ばし

歩行サイクル1周分が完成しました。キャラクターのポーズは開始の状態に戻ります。歩行を長く続けるには、このサイクルをループさせます。これには Up Position と Pose トラックで、アニメーション → まとめて編集 → ループ... をクリックします。以下の図のようなダイアログが表示されるので、「これに適用」は 選択トラック、0.0〜1.6秒までで、繰り返しの回数は5回にしましょうか。


Forward Position も調整する必要がありますが、これはループできません。単純にキーフレームを1.6秒から8秒(1.6×5)にドラッグしましょう。そしてこのキーフレームをダブルクリックして、X の値を現在の値の5倍にします(この例では 9.6 単位)。

完成です。カメラの向きと位置をふさわしく調整して、アニメーションのプレビューを走らせ、レンダーしましょう。うまくでき上がれば、ムービーファイル出力は下に示したようになるでしょう。



必要に応じて、モデルを速く/遅く歩かせる簡単な操作をします。単純に Forward Position、Up Position、Pose トラックを選択して アニメーション まとめて編集 → 引き伸ばし... をクリックすると、以下のダイアログが表示されます。

例えば左の図の設定で、キャラクターの歩行は2倍速になります。



おわりに

もちろんこれは、興味深い歩行や走行を作成するあらゆる方法のほんの開始点です。今回のキャラクターは多少誇張された歩行に特化しています。例えばポーズで足や腕の動作を減らして、歩行を緩くしたりもできます。その一方で、動作をさらに誇張することもできます。あるいは手足に横の動きを加えたり、異なる「重み」で上下動のタイプを変えたりも。選択肢は無限です。


Art Of Illusion 文書 に戻る